package vista;



import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import modelo.Adicional;
import modelo.Plan;
import modelo.PlanView;
import modelo.Usuario;
import modelo.UsuarioView;

import controlador.TelefoniaMovil;

public class AltaLineaAdicional extends JFrame {
	/**
	 * 
	 */
	private TelefoniaMovil tm;
	private JTable tabla;
	private JScrollPane scrollPane;
	private JButton guardarButton;
	private JButton cancelarButton;
	//private JButton eliminarButton;
	private JLabel plan;
	private JComboBox comboPlan;
	
	private JLabel adicional;
	private JTextField adicionalTxt;
	
	//private ListarUsuario lu;
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
	}
	
	public AltaLineaAdicional (TelefoniaMovil tm) {
		
		this.tm = tm;
		initGUI();
		
	}
	

	public AltaLineaAdicional() {
		
		initGUI();
		
	}
	
//	private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                    
//		 
//	    String ele = txtElemento.getText();
//	 
//	    for (int i = 0; i < tbComponentes.getRowCount(); i++) {
//	           if (tbComponentes.getValueAt(i, 1).equals(ele)) {                                          
//	                  tbComponentes.changeSelection(i, 1, false, false);
//	                  break;
//	           }
//	    }
//	}
	
	
	public void llenarTabla(){
		//Vector usuarios = tm.obtenerUsuario();
		Vector usuarios = tm.obtenerUsuarioConLineaPrincipal();
		
		Vector columnas = new Vector();
		columnas.add("Dni");
		columnas.add("Nombre");
		columnas.add("Apellido");
			
		tabla = new JTable(usuarios, columnas);
		scrollPane = new JScrollPane(tabla);
		scrollPane.setBounds(14, 14, 350, 189);
		getContentPane().add(scrollPane);
		
	}
	
	public void llenarCombo(){
		
		Vector<PlanView> planes = tm.obtenerPlanes();
		for (int i=0;i< planes.size();i++){
			Plan plan = tm.buscarPlan(planes.elementAt(i).getNroPlan());
			if (plan instanceof Adicional){
				comboPlan.addItem(planes.elementAt(i).getNombre());	
			}
				
		}
		
	}
	
	private boolean validarDatosVacio(){
		if (adicionalTxt.getText().length() == 0){
			JOptionPane.showMessageDialog(null, "El campo Nombre Adicional no puede estar vacio", "Alta Linea Adicional", JOptionPane.ERROR_MESSAGE);
			return false;
		}
		return true;
	}
	
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			
			llenarTabla();
			
			plan =  new JLabel();
			plan.setText("Plan:");
			plan.setBounds(20, 260, 100, 30);
			getContentPane().add(plan);
			
			adicional = new JLabel("Nombre Adicional");
			adicional.setBounds(20, 220, 100, 30);
			getContentPane().add(adicional);
			
			
			adicionalTxt = new JTextField();
			adicionalTxt.setBounds(125, 220, 200, 30);
			getContentPane().add(adicionalTxt);
			
			
			comboPlan =  new JComboBox();
			comboPlan.setBounds(65, 260, 150, 28);
			getContentPane().add(comboPlan);
			
			
			llenarCombo();
			guardarButton =  new JButton();
			guardarButton.setText("Guardar");
			guardarButton.setBounds(100, 340, 90, 30);
			getContentPane().add(guardarButton);
			guardarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					int registro = tabla.getSelectedRow();
					if (registro == -1){
						JOptionPane.showMessageDialog(null, "Debe Selccionar un usuario para dar de alta una Linea", "Alta Linea", JOptionPane.ERROR_MESSAGE);
					}else{
						int dniUsuario = (Integer) tabla.getValueAt(registro, 0);
						int idPlan = tm.buscarIdPlan((String)comboPlan.getSelectedItem());
						
						if (idPlan  ==  0){
							JOptionPane.showMessageDialog(null, "No existe Planes Adicionales", "Alta Linea", JOptionPane.ERROR_MESSAGE);
						}else
						{
							boolean validar = validarDatosVacio();
							
							if (validar){
								int crearLinea = tm.crearLineaAdicional (dniUsuario, "",idPlan);
								
								if (crearLinea==0){
									JOptionPane.showMessageDialog(null, "Error al intentar dar de alta Linea", "Alta Linea", JOptionPane.ERROR_MESSAGE);
								}else
									JOptionPane.showMessageDialog(null, "Se Asigno la linea " + crearLinea , "Alta Linea", JOptionPane.INFORMATION_MESSAGE);
								
							}
							
						}
						
					}
						
						
						
				 
				}
			});
			
			cancelarButton =  new JButton();
			cancelarButton.setText("Cancelar");
			cancelarButton.setBounds(230, 340, 90, 30);
			getContentPane().add(cancelarButton);
			cancelarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					dispose();
				}
			});
			setTitle("Alta Linea");
			pack();
			this.setSize(400, 450);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

